home *** CD-ROM | disk | FTP | other *** search
-
-
-
- G R A F I A S
-
-
- VERSION 1.0PD
-
- vom 12. Oktober 1992
-
-
-
- -----------------------------------------------------------------
-
- für den Atari ST. Interpretiert HPGL-Befehle und erzeugt an der
- parallelen Schnittstelle die Impulse für eine 2-Achsen-
- Schrittmotorkarte eines Plotters, inklusive einer flexiblen
- Stiftsteuerung.
-
- -----------------------------------------------------------------
-
-
-
- Autor:
- Roland Reißmüller
- Hauptstraße 79
- D-7076 Waldstetten
- Tel.: 07171/42220
- Copyright ©, 1992
-
-
-
- -----------------------------------------------------------------
-
- Inhaltsverzeichniss zur Beschreibung von GRAFIAS
-
-
- 1 Einleitung
- 1.1 Allgemeines
- 1.2 Diese Version
- 1.3 Die Voll-Version
- 1.4 Diese Beschreibung
- 1.5 Rechtliches
- 1.6 Inhalt der Diskette
-
- 2 Installation der Software
-
- 3 Anpassungen
- 3.1 Prinzipieller Plotteraufbau
- 3.2 Endschalter
- 3.3 Plotter - Rechner - Kopplung
- 3.4 Stiftwechselmechanismus
- 3.4.1 Manueller Stiftwechsel
- 3.4.2 Drei Stiftmagnete
-
- 4 Bedienung
-
- 5 Die Grafiksprache HPGL
-
-
-
-
- 1 E i n l e i t u n g
-
- 1.1 Allgemeines
-
- Mittlerweile sind in Fachzeitschriften schon einige
- Selbstbauplotter veröffentlicht worden. Mit GRAFIAS auf dem Atari
- ST ist es nun möglich Selbstbauplotter durch HPGL-Befehlen zu
- steuern. An der parallelen Schnittstelle des Atari stehen alle
- Impulse zur Verfügung, um über eine Schrittmotorkarte die beiden
- Schrittmotoren des Plotter in Bewegung zu setzen und die Stifte
- zu steuern. Um Zeichnungen von einem CAD-Programm auszuplotten,
- leitet man die Plotterausgabe in eine Datei um. Dies wird von den
- meisten CAD-Programmen unterstützt. Diese Datei kann nun von
- GRAFIAS verarbeitet werden.
-
- GRAFIAS ist in Turbo C geschrieben und wird ständig
- weiterentwickelt.
-
-
- 1.2 Diese Version
-
- in Stichworten...
- Interpretiert HPGL-Befehle und Dateien * Umfangreiche
- Konfigurierbarkeit * Mit den meisten Plottern /
- Schrittmotorkarten kominierbar * Manueller Stiftwechsel oder
- Bedienung von 3 Stiftmagneten * Stiftsortierung abschaltbar *
- Läuft als Programm und Accessory * Bedienung durch GEM-
- Dialogbox * Überwacht die Hardwaregrenzen * Rampensteuerung *
- Linientypen * Proportionale oder unproportionale Textausgabe *
- Koordinatenanzeige in der Dialogbox * Manuelle Stiftbewegung
- * Direkte Befehlseingabe * Vergrößerung, Offset und
- Blattrichtung einstellbar
-
- In der Public-Domain-Version ist die Zeichnungsgröße auf 2kByte
- begrenzt. Der Befehlsumfang in dieser Version reicht aus, um die
- Zeicnungen der meisten CAD-Programmen zu plotten.
-
- Verfügbare Befehle:
-
- PU Stift heben
- PD Stift senken
- IN Initialisiern (Anfangszustand)
- DF Default (Standardeinstellung)
- LB Label (Textausgabe)
- LT Linientyp
- SP Select Pen
- DT Define Terminator
- PF Proportionalschrift ein (PF1;) / aus (PF0;)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.3 Die Voll-Version
-
- bietet noch mehr Möglichkeiten ...
- keine Beschränkung der Zeichnungsgröße * weitere HPGL-Befehle *
- relative Vektoren * absolute und relative Bögen * Text in Größe
- und Richtung einstellbar *
-
- Wer die Voll-Version einschließlich einer umfangreichen
- Beschreibung (auf Diskette) haben möchte, kann diese für 50.- DM
- (Verrechnungsscheck) bei mir bestellen.
-
- Bestellung bei: Roland Reißmüller
- Hauptstraße 79
- D-7076 Waldstetten
- Tel.: 07171/42220
-
-
-
- 1.4 Diese Beschreibung
-
- Diese Beschreibung ist auf 65 Zeichen / Zeile und 62 Zeilen /
- Seite formatiert.
-
- Zur Erklärung wird ein stilisirter Plotter aus ASCII-Zeichen
- dargestellt. Dabei bedeuten:
-
- XXX Die x-Achse
- YYY Die y-Achse
- 0/0 Koordinatenangabe (hier der Ursprung)
-
-
-
- 1.5 Rechtliches
-
- Diese Version ist Public-Domain, bleibt aber Eigentum des Autors.
- Die Public-Domain-Version darf kostenlos von jedem verwendet,
- kopiert und weitergegeben werden, allerdings nur in Verbindung
- mit den anderen Dateien und nur im Ordner. Das Programm und alle
- anderen Dateien dürfen nicht geändert werden.
-
- Jegliche Haftung des Autors für Schäden in Zusammenhang mit dem
- Programm sind ausgeschlossen.
-
-
-
- 1.6 Inhalt der Diskette
-
- Folgende Dateien bzw. Ordner müssen auf der Diskette im Ordner
- GRAFIAS enthalten sein:
-
- READ.ME Diese Beschreibung
- GRAFIAS.PRG Das Progamm
- GRAFIAS.RSC Die Resource
- GRAFIAS.PAR Die Konfigurationsdatei
- LITT.CHR Der Zeichensatz
- BEISPIEL Ordner mit Beispielen
-
-
-
-
-
-
- 2 I n s t a l a t i o n d e r S o f t w a r e
-
- Das Programm läuft auf einem Atari ST in der mittleren und hohen
- Auflösung. Mit einem TT habe ich noch keine Erfahrungen
- gesammelt. Eine Festplatte ist nicht notwendig. 500 kByte - RAM
- sollten ausreichen.
-
- Folgende Dateien sind für den betrieb notwendig:
-
- GRAFIAS.PRG Das Programm selbst
- GRAFIAS.RSC Die Resource
- GRAFIAS.PAR Die Konfigurationsdatei
- LITT.CHR Der Zeichensatz
-
- Alle diese Dateien müssen im gleichen Verzeichnis stehen. Soll
- das Programm als Accessory verwendet werden, ist einfach die
- Programmextension von .PRG nach .ACC zu ändern. Ein
- Druckerspooler darf nicht aktiv sein. Wenn - wie meistens - außer
- dem Plotter auch ein Drucker verwendet wird, hat sich ein
- sogenanntes DATA-SWITCH bewährt. Dadurch bleibt einem das
- dauernde umstöpseln erspart. Grafikkarten dürften keine Probleme
- bereiten.
-
-
-
- 3 A n p a s s u n g e n
-
- 3.1 Prinzipieller Plotteraufbau
-
- Die Software ist geeignet für alle Flachbett- und Walzenplotter
- mit Schrittmotorkarte welche die Anforderungen in den nächsten
- beiden Kapiteln erfüllen. Die Software ist möglichst flexibel
- gehalten, so daß ein Betrieb mit den meisten Plottern ermöglicht
- werden kann, entweder durch anpassen der Konfigurationsdatei oder
- durch Anpassungen am Plotter (Stichworte: Endschalter,
- Schnittstelle, Stiftwechselmechanismus). An die Mechanik ist
- zunächst mal die Forderung gestellt, daß zwei Schrittmotoren
- einen Schlitten auf zwei senkrecht zueinander stehenden Achsen
- über das Papier bewegen können. Die hardwarespezifischen
- Parameter wie Schrittweite, Hard-Clipping, Bewegungsrichtung usw.
- kann über die Konfigurationsdatei angepasst werden. Einzig die
- Lage der Endschalter ist wichtig.
-
-
-
- 3.2 Endschalter
-
- Nach dem Programmaufruf muß die tatsächliche Plotterposition mit
- den Variablen im Programm synchronisiert werden. Dazu bewegen
- sich die Achsen in Richtung der Endschalter bis diese betätigt
- werden und wieder zurück, bis diese nicht mehr betätigt sind.
- Die Variablen werden jetzt initialisiert.
-
- Ablauf des RESET:
- - Beide Achse gegen Endschalter bis einer von beiden betätigt ist
- - Beide Achsen wieder zurück, bis kein Endschalter betätigt ist
- - x-Achse gegen Endschalter
- - x-Achse zurück bis Endschalter nicht mehr betätigt ist
- - y-Achse gegen Endschalter
- - y-Achse zurück bis Endschalter nicht mehr betätigt ist
-
-
- Die Endschalter müssen bei den maximalen positiven Koordinaten
- des Plottbereiches, also rechts/oben montiert sein, weil nach
- einem Reset im Programm die Stiftposition und die oberen
- Rahmengrenzen auf die maximale Rahmengröße gesetzt werden. Die
- unteren Rahmengrenzen werden gleich null gesetzt.
-
-
-
- Lage der
- Endschalter
- Y
- XXXXXXXXXXXXXXXXXXXXXX XX
- --------------------- Y
- | | Y
- | Plottbereich | Y
- | | Y
- | | Y
- | 0/0 | Y
- --------------------- Y
-
-
-
-
-
- Weil nur ein Eingang, das Signal Busy, an der parallelen
- Schnittstelle zur Verfügung steht, müssen die Endschalter für die
- x- und y- Achse in Reihe geschaltet und gemeinsam abgefragt
- werden. Welcher Endschalter nun betätigt ist ergibt sich daraus,
- welche Achse in Bewegung ist.
-
- +5V
- |
- |
- ---
- | |
- | | R z.B. 10 kOhm
- | |
- ---
- |
- Rechner: BUSY-Eingang --------+
- |
- +--
- / Endschalter
- / für x-Achse
- |
- |
- +--
- / Endschalter
- / für y-Achse
- |
- |
- -+- Masse
-
- Das Bild zeigt also, mit viel Phantasie, eine Reihenschaltung
- aus: 5V-Spannung , 10kOhm-Widerstand , BUSY-Anschluss ,
- Endschalter der x-Achse , Endschalter der y-Achse und Masse.
- Die beiden Schalter sind Öffner, im Ruhezustand also durchgängig.
-
-
-
-
-
- 3.3 Plotter - Rechner - Kopplung
-
- Die Schrittmotorkarte wird über die parallele Schnittstelle mit
- dem Atari gekoppelt. Die 8 Datenleitungen DATA0 ... DATA7 werden
- nur als Ausgänge genutzt, das BUSY-Signal als Eingang für die
- Endschalterabfrage. Hier muss ich darauf hinweisen, daß die
- parallele Schnittstelle ungepuffert ist, wodurch sie leicht
- zerstört werden kann. Die elektrischen Anschlußwerte müssen
- unbedingt eingehalten werden.
-
- Anschlußkabel:
- --------------
- Rechner Plotter
- (parallele)
-
- DATA0 x-Clock (high aktiv)
- " 1 x-Richtung 0=links, 1=rechts
- " 2 y-Clock (high aktiv)
- " 3 y-Richtung 0=unten, 1=oben
- " 4 0=Vollschritt, 1=Halbschritt (oder eigene Anwendung)
- " 5 Reset der Schrittmotorkarte (oder eigene Anwendung)
- " 6 0=Stift heben, 1=Stift senken
- " 7 0=Stift heben, 1=Stift senken (siehe Text)
- BUSY 1=Endschalter betätigt
-
- Erläuterungen: DATA4 wird entsprechend der Vorgabe in der
- Konfigurationsdatei gesetzt, ansonsten vom Programm aber nicht
- beeinflußt. Es ist vorgesehen, DATA4 zum Umschalten der
- Schrittmotoren von Vollschritt- auf Halbschritt-Betrieb zu
- verwenden. Wenn eine solche Umschaltung für die eigene Anwendung
- nicht gewünscht wird, kann dieses Bit auch für andere Zwecke
- eingesetzt werden.
-
- DATA5 wird vom Programm selbstständig nicht geändert, kann aber
- vom Anwender in der Dialogbox geändert werden.
-
-
- Adapter:
- --------
- Wenn schon ein Anschlußkabel vorhanden ist und dessen Pinbelegung
- nicht mit der obigen übereinstimmt, kann aus einem 25-poligen
- SubD-Stecker und entsprechender Buchse ein Adapter gebastelt
- werden, indem die Pins der Rechnerseite durch einzelne Kabel mit
- den entsprechenden der Schrittmotorkarte verbunden werden. Um
- Vertauschungen auszuschliessen, sollte vorher eine Liste
- der eigenen, individuellen Pinbelegung angefertigt werden.
-
-
- Invertieren der Signale:
- ------------------------
- Stimmt die Pin-Belegung könnten die Signale nun noch invertiert
- anliegen. Normalerweise müssten jetzt Invertierer in das Kabel
- eingebaut werden.
-
- Im Programm können die einzelnen Bits mit der Variablen 'plotinv'
- in der Konfigurationsdatei invertiert werden. Die 8 Bits der
- Variablen entsprechen den Datenleitungen DATA0 ... DATA7 der
- parallelen Schnittstelle.
-
- Ist ein Bit =0, erscheint dieses Signal so am Port, wie es in der
- Liste oben angegeben wurde. Ist ein Bit =1 erscheint dieses
- Signal invertiert am Port.
-
- Das setzen eines Bits hat also die Wirkung wie der Einbau eines
- Invertierers in die Datenleitung. Die internen Rechnungen und
- Anzeigen in der Dialogbox bleiben davon unberührt.
-
-
- 3.4 Stiftwechselmechanismus
-
- Zur Zeit werden vom Programm zwei Mechanismen für den
- Stiftwechsel bedient. Mit der Variablen 'swe' kann zwischen
- beiden Optionen gewählt werden.
-
- swe = 0 ---> Manueller Stiftwechsel (Abschnitt 3.4.1)
- swe = 1 ---> 3 Stifte mit Stiftmagneten (Abschnitt 3.4.2)
-
-
-
- 3.4.1 Manueller Stiftwechsel
-
- Dazu hält der Plotter bei jedem Stiftwechselbefehl an und fordert
- in einer Dialogbox auf, den Stift zu wechseln. Besonders hier ist
- es sinnvoll, die Stiftsortierung einzuschalten. Die Variablen
- penoffset in der Konfigurationsdatei werden nicht berücksichtigt.
-
-
- 3.4.2 Drei Stiftmagnete
-
- Über die Bits DATA6 und DATA7 der parallelen Schnittstelle können
- 3 Stiftmagnete angesprochen werden. Die Bits haben folgende
- Bedeutung:
-
- DATA7 DATA6 Wirkung
-
- 0 0 alle Stifte oben
- 0 1 Stift 1 abgesenkt
- 1 0 " 2 "
- 1 1 " 3 "
-
-
- Dieser Mechanismus ist z.B. in der Bauanleitung des Plotter
- 'Mondrian' der Zeitschrift Elektor vorgesehen.
-
- Die 3 Stifte sind hier am Schlitten montiert. Der Offset der
- Stifte 2 und 3 vom Stift 1 kann durch die Variablen 'pen2of' und
- 'pen3of' in der Konfigurationsdatei egalisiert werden.
-
-
-
- 4 B e d i e n u n g
-
- Bedient wird das Programm über eine, nicht ganz GEM-konforme
- Dialogbox. Die Handhabung weicht in zwei Punkten vom GEM-Standard
- ab.
-
- - Wenn der Cursor in den Feldern xPOS, yPos oder Befehl steht und
- die RETURN-Taste betätigt wird, wird der Dialog verlassen und die
- in den Feldern getätigte Eingabe ausgeführt.
-
- - In den Feldern, in denen Zahleneingaben erlaubt sind können
- auch Vorzeichen eingegeben werden. In GEM ist eine Beschränkung
- auf Ziffern und Vorzeichen nicht möglich !
-
-
- Plotten einer Datei:
- --------------------
- Mit klick auf eine Dateiextension, in der Dialogbox rechts fast
- ganz oben, erscheint die Dialogbox um den Zugriffspfad der zu
- plottenden Datei festzulegen. Ist ein Pfad gewählt, wird dieser
- im Feld 'Pfad' angezeigt. Klick auf 'Plotten' gibt diese Datei
- aus.
-
- Bei aktiver Stiftsortierung wird die Zeichnung für jeden Stift
- einmal ausgegeben. Die Stiftsortierung ist nicht ganz trivial.
- Die Befehle einfach nicht auszuführen, welche mit einem anderem
- als dem eben aktiven Stift ausgeführt werden, bringt Probleme,
- weil für einen Befehl dessen Vorgeschichte nicht ganz
- uninteressant ist. Z.B. soll eine Linientyp-Einstellung während
- aktivem Stift 1 auch noch nach einem Stiftwechsel wirksam sein.
-
- Die BUTTON's 7...0,S,B zeigen die Bits des Parallel-Ports. Vom
- Anwender können nur die Bits 4...7 geändert werden.
-
-
-
-
-
-
- 5 D i e G r a f i k s p r a c h e H P G L
-
- Das Programm interpretiert HPGL-Befehle (Hewlett Packard Graphics
- Language). Diese Sprache stellt Befehle zum zeichnen zur
- Verfügung wie Linien, Kreise, ... oder Einstell-Befehle wie
- Linientyp, Stiftwechsel, Skalierung, ... . Der Code ist ASCII,
- und kann desshalb mittels Texteditor angeschaut werden.
-
- Die Befehle könnten als komplette Zeichnung von einem anderen
- Programm erzeugt worden sein (z.B. CAD-Prg.) und als Datei
- vorliegen, oder einzeln im Feld 'Befehl' der Dialogbox eingegeben
- werden. In Basic z.B. werden durch LPRINT " <Befehl> " Befehle
- in eine Datei geschrieben. In dieser Version darf ein Befehl
- nicht länger als 254 Zeichen sein.
-
- Die Syntax von HPGL muß eingehalten werden: Ein HPGL-Befehl
- beginnt mit dem Befehlsnamen bestehend aus 2 Groß-Buchstaben.
- Darauf folgen, falls für den Befehl notwendig, die Parameter,
- welche durch ein Trennzeichen voneinander getrennt sind.
-
- Gültige Trennzeichen: ',' Komma
- ' ' Leerzeichen
- '+' Vorzeichen
- '-' Vorzeichen
-
- Der Befehl muß mit dem Terminator ';' abgeschlossen sein.
- Die Syntax lautet also:
-
- mn Param1 Trennz Param2 Trennz ... Terminator
- |
- Befehlsname
-
-
-
-
-
-
- Zusätzliche Trennzeichen werden ignoriert. Ein gültiger Befehl
- könnte also sein:
-
- PA1000,1000;
- PA+1000 1000;
- ,PA,+1000 1000;
-
- Alle diese Befehle bewegen den Stift zu den absoluten Koordinaten
- 1000/1000 .
-
- Ausnahme bildet der LB-Befehl also die Textausgabe. Der Parameter
- ist eine Zeichenkette der ASCII-Codes von 32 ... 255 und der
- Steuerzeichen LF = 0Ah und CR = 0Dh. Die Textausgabe terminiert
- beim Empfang des Textterminators, der standardmäßig auf ETX (End
- Of Text) = 03h gestellt ist, mit dem Befehl DT (Define
- Terminator) aber auf ein beliebiges ASCII-Zeichen geändert werden
- kann. In dieser Version sollte auch LB mit ';' terminiert werden.
-
- Bei der direkten Befehlseingabe in die Dialogbox können die
- Steuerzeichen über Control-Codes erreicht werden:
-
- LF = Control J
- CR = Control M
- ETX = Control C
-
-
-